<?php

// $data_list = array();
// $sql = "select * from `userinfo_tb`";
// $resu = my_mysql_query($sql, $data_list, 'data');
//
// var_dump($data_list);

// 回调参数
// function data($row, &$array){
//     if ($row['uid'] == 43121231) {
//         return;
//     }
//     $array[] = $row;
// }

/**
 * 回调函数,如果传入回调函数,可以利用回调函数处理过滤数据
 * $sql sql语句
 * &$array 处理后的回调参数
 * &$insertID  如果插入数据,返回id
 * $func 处理函数
 * $type 返回结果的参数,与参数直接关联
 */
function my_mysql_query($sql, &$array, &$insertID = -1, $func = '', $type = 1){

    $link = mysqli_connect(DB_HOST, DB_USER, DB_PWD);
    if (!$link){
	    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
	    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        return false;
    }

    mysqli_set_charset($link, DB_CHAR);
    mysqli_select_db($link, DB_NAME);

	$result = mysqli_query($link, $sql);
	$count  = mysqli_affected_rows($link);
    if ($result === false){
        $error = mysqli_error($link);
        mysqli_close($link);
        return false;
    }


	$insertID = mysqli_insert_id($link);

    switch($type){
        // 关联
        case 1:
            $method = 'mysqli_fetch_assoc'; break;
        // 索引
        case 2:
            $method = 'mysqli_fetch_row'; break;
        // 混合
        case 3:
            $method = 'mysqli_fetch_array'; break;
        // 对象
        case 4:
            $method = 'mysqli_fetch_object'; break;
        default:
            $method = '';
    }
    if (empty($method)){
		var_dump(mysqli_error($link));
        mysqli_close($link);
        return false;
    }

    // 遍历数组
	if (!is_bool($result)) {
	    while($row = $method($result)) {
	        if (!empty($func))
	            $func($row, $array);
	        else
	            $array[] = $row;
	    }
	}

    // 回收资源
    mysqli_close($link);
    return true;
}


/**
 * 添加分数
 */
function addscore($uid, $score=1){
    if ($uid < 1 || $score < 0) {
        return false;
    }
    $data = array();
    $sql  = "UPDATE `login_tb` SET score=score+{$score} WHERE uid={$uid}";
    return my_mysql_query($sql, $data);
}